package com.ht.api.callback.impl;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ht.api.db.Entity;
import com.ht.api.open.OpenUtil;
import com.ht.api.util.ParamParser;

import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;

/**
 * 企业客户标签创建/变更事件
 * @author asq
 * @createTime 2025年1月17日 13:26:47
 */
@Slf4j
public class WwxTagAddOrEditCallbackFunction extends BaseCallbackFunction{
	/** 接口ID：获取企业标签库 */
	protected static final long API_ID = 1896075908998107136L;

	@Override
	protected List<String> buildSourceDataList(JSONObject params) {
		String tagType = params.getStr("TagType");
		String id = params.getStr("Id");

		// 组装接口参数
		JSONObject apiConfig = getApiConfig(API_ID);
		Map<String, Object> values = new HashMap<>();
		values.put("tag_group".equals(tagType) ? "group_id" : "tag_id", id);
        JSONObject assembled = new ParamParser().assembleJson(apiConfig.getJSONArray("param"), values);

        // 调用接口
		String str = OpenUtil.call(appid, API_ID, assembled);
		
		return Arrays.asList(str);
	}

	@Override
	protected String getSourceCode(Entity callback, JSONObject params) {
		// 使用接口ID：获取企业标签库，作为open_data的source_code
		return String.valueOf(API_ID);
	}
	
}
